import axios from 'axios'
import { Message } from 'element-ui';
import store from '../store'
import router from '../router';
// const baseURL = 'http://localhost:8888/api/private/v1/'
const baseURL = process.env.VUE_APP_BASE_API ? process.env.VUE_APP_BASE_API : 'https://guo.raz-kid.cn/api/private/v1/'
const instance = axios.create({
  baseURL
})
// 请求拦截器
instance.interceptors.request.use((config)=>{
  if (store.state.token) {
    config.headers['Authorization'] = store.state.token
  }
  return config;
},(error)=>{
  return Promise.reject(error)
})
// 响应拦截器
instance.interceptors.response.use((response)=>{
  if (response.data.meta.msg === '无效token') {
    router.push({name: 'login'})
  } 
  return response;
},(error)=>{
  return Promise.reject(error)
})
// 封装ajax请求
export function http(url,method,data,params){
  return new Promise((resolve,reject)=>{
    instance({
      url,
      method,
      data,
      params
    }).then(res=>{
      if ((res.status >= 200 && res.status < 300) || res.status ===304) {
        if ((res.data.meta.status >= 200 && res.data.meta.status < 300) || res.data.meta.status ===304) {
          resolve(res.data);
        } else {
          Message({ //请求成功或失败的弹框提示
            showClose: true,
            message: res.data.meta.msg,
            type: 'error'
          })
          reject(res);
        }
      } else {
        Message({
          showClose: true,
          message: res.statusText,
          type: 'error'
        })
        reject(res);
      }
    }).catch(err=>{
      Message({
        showClose: true,
        message: err.message,
        type: 'error'
      })
      reject(err);
    })
  })
}
// 上传图片
export const uploadURL = baseURL + 'upload'